package de.hdu.pms.model;

import java.util.Date;

import javax.persistence.Column;
import javax.persistence.Entity;
import javax.persistence.GeneratedValue;
import javax.persistence.Id;
import javax.persistence.JoinColumn;
import javax.persistence.ManyToOne;
import javax.persistence.Table;
import javax.persistence.Temporal;
import javax.persistence.TemporalType;

import de.hdu.pms.model.Mitarbeiter;

/**
 * @author BBV
 * 
 *         model class Urlaub
 */

@Entity
@Table(name = "urlaub")
public class Urlaub {

	/**
	 * primary key:
	 * <ul>
	 * <li>urlaub_id in the database</li>
	 * <li>automatic generated value</li>
	 * </ul>
	 */
	@Id
	@GeneratedValue
	@Column(name = "urlaub_id")
	private Integer id;

	@Temporal(TemporalType.DATE)
	private Date urlaub_von;
	@Temporal(TemporalType.DATE)
	private Date urlaub_bis;
	private Boolean urlaub_genehmigt;

	/**
	 * <b>connection to the table Mitarbeiter:</b>
	 * <ul>
	 * <li>Mitarbeiter 1:n Urlaub</li>
	 * <li>one Mitarbeiter has no, one ore more Urlaubstage</li>
	 * <li>one Urlaubstag has one Mitarbeiter</li>
	 * <li>mit_id is foreign key and referential integrity is on</li>
	 * </ul>
	 */
	@ManyToOne
	@JoinColumn(name = "mit_id", nullable = false)
	private Mitarbeiter mitarbeiter;

	public Integer getId() {
		return id;
	}

	public void setId(Integer id) {
		this.id = id;
	}

	public Date getUrlaub_von() {
		return urlaub_von;
	}

	public void setUrlaub_von(Date urlaub_von) {
		this.urlaub_von = urlaub_von;
	}

	public Date getUrlaub_bis() {
		return urlaub_bis;
	}

	public void setUrlaub_bis(Date urlaub_bis) {
		this.urlaub_bis = urlaub_bis;
	}

	public Boolean getUrlaub_genehmigt() {
		return urlaub_genehmigt;
	}

	public void setUrlaub_genehmigt(Boolean urlaub_genehmigt) {
		this.urlaub_genehmigt = urlaub_genehmigt;
	}

	public Mitarbeiter getMitarbeiter() {
		return mitarbeiter;
	}

	public void setMitarbeiter(Mitarbeiter mitarbeiter) {
		this.mitarbeiter = mitarbeiter;
	}
}
